using System;
using System.Collections;
using System.Runtime.InteropServices;
namespace BMC.ARSystem
{
	[ARStructTypeInfo(Name = "ARIndexStruct", NumberOfMembers = 5u), ClassInterface, Guid("c9d1792a-38c5-4f7c-8457-13791e801837"), ProgId("BMC.ARSystem.Index")]
	public class Index
	{
		[ARStructMemTypeInfo(Name = "fieldIds", Offset = 0u)]
		private ArrayList _fieldIds;
		[ARStructMemTypeInfo(Name = "unique", Offset = 1u)]
		private bool _unique;
		[ARStructMemTypeInfo(Name = "indexName", Offset = 2u)]
		private string _indexName;
		[ARStructMemTypeInfo(Name = "dataMappingUsageCnt", Offset = 3u)]
		private uint _dataMappingUsageCnt;
		public ArrayList FieldIds
		{
			get
			{
				return this._fieldIds;
			}
			set
			{
				this._fieldIds = value;
			}
		}
		public bool IsUnique
		{
			get
			{
				return this._unique;
			}
			set
			{
				this._unique = value;
			}
		}
		public string IndexName
		{
			get
			{
				return this._indexName;
			}
			set
			{
				this._indexName = value;
			}
		}
		public uint DataMappingUsageCount
		{
			get
			{
				return this._dataMappingUsageCnt;
			}
			set
			{
				this._dataMappingUsageCnt = value;
			}
		}
		public Index()
		{
		}
		internal Index(object[] rawData, Server server)
		{
			this.FieldIds = ARTypeMgr.Instance.ArrayListFromVariant(Type.GetType("Unknown"), (object[])Util.GetAt(rawData, new int[]
			{
				1
			}), server);
			this.IsUnique = (1 == Convert.ToInt32(Util.GetAt(rawData, new int[]
			{
				2
			})));
			this.IndexName = (string)Util.GetAt(rawData, new int[]
			{
				3
			});
			this.DataMappingUsageCount = (uint)Util.GetAt(rawData, new int[]
			{
				4
			});
		}
	}
}
